package com.fl.nj.exception;

/**
 * 自定义业务异常类
 * 用于在业务逻辑中抛出特定的业务异常
 */
public class BusinessException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    // 错误状态码
    private int statusCode = 500;

    /**
     * 构造函数
     * 
     * @param message 错误消息
     */
    public BusinessException(String message) {
        super(message);
    }

    /**
     * 构造函数
     * 
     * @param message 错误消息
     * @param cause   异常原因
     */
    public BusinessException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * 构造函数
     * 
     * @param statusCode 状态码
     * @param message    错误消息
     */
    public BusinessException(int statusCode, String message) {
        super(message);
        this.statusCode = statusCode;
    }

    /**
     * 构造函数
     * 
     * @param statusCode 状态码
     * @param message    错误消息
     * @param cause      异常原因
     */
    public BusinessException(int statusCode, String message, Throwable cause) {
        super(message, cause);
        this.statusCode = statusCode;
    }

    /**
     * 获取状态码
     * 
     * @return 状态码
     */
    public int getStatusCode() {
        return statusCode;
    }

    /**
     * 设置状态码
     * 
     * @param statusCode 状态码
     */
    public void setStatusCode(int statusCode) {
        this.statusCode = statusCode;
    }
}